package com.yvnze.ydyp.modules.document.service;

import com.yvnze.ydyp.modules.document.entity.FileRelation;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Haipeng Wang  
 * @since 2021-08-14
 */
public interface IFileRelationService {

    /**
     * 添加根节点
     * @param fileInfoId
     */
    public void addRootNode(String fileInfoId);


    /**
     * 添加节点
     * 把fileInfoId 添加到 ancestor 下面
     * @param ancestor 父节点
     * @param fileInfoId 子节点
     */
    public void addNode(String ancestor,String fileInfoId);


    /**
     * 返回fileInfoId 对应的所有直属子节点
     * @param fileInfoId
     * @return
     */
    public List<FileRelation> selectDirNode(String fileInfoId);


    /**
     * 返回fileInfoId 对应的所有子节点，不管是不是直属
     * @param fileInfoId
     * @return
     */
    public List<FileRelation> selectAllDirNode(String fileInfoId);


    /**
     * fileInfoId 对应一个没有子树的节点，通过这个方法去删除
     * 根据FileInfoId
     * @param fileInfoId
     */
    public void deleteFileCascade(String fileInfoId);
}
